Don't update headings in an idle
authorMatthias Clasen <mclasen@redhat.com>
Sun, 13 Aug 2017 13:27:37 +0000 (09:27 -0400)
committerMatthias Clasen <mclasen@redhat.com>
Sun, 13 Aug 2017 13:27:37 +0000 (09:27 -0400)
It is not necessary since flow box invalidation is
all synchronous currently. If that ever changes,
this code will need adjustment.

gtk/gtkemojichooser.c

index a76c5e183d71d4561ad6897fd9f15fe1db239aed..8e92097b567f275becf19c55a6cc28f742a02c8a 100644 (file)
@@ -404,11 +404,9 @@ invalidate_section (EmojiSection *section)
   gtk_flow_box_invalidate_filter (GTK_FLOW_BOX (section->box));
 }
 
-static gboolean
-update_headings (gpointer data)
+static void
+update_headings (GtkEmojiChooser *chooser)
 {
-  GtkEmojiChooser *chooser = data;
-
   gtk_widget_set_visible (chooser->people.heading, !chooser->people.empty);
   gtk_widget_set_visible (chooser->body.heading, !chooser->body.empty);
   gtk_widget_set_visible (chooser->nature.heading, !chooser->nature.empty);
@@ -427,8 +425,6 @@ update_headings (gpointer data)
     gtk_stack_set_visible_child_name (GTK_STACK (chooser->stack), "empty");
   else
     gtk_stack_set_visible_child_name (GTK_STACK (chooser->stack), "list");
-
-  return G_SOURCE_REMOVE;
 }
 
 static void
@@ -448,7 +444,7 @@ search_changed (GtkEntry *entry,
   invalidate_section (&chooser->symbols);
   invalidate_section (&chooser->flags);
 
-  g_idle_add (update_headings, data);
+  update_headings (chooser);
 }
 
 static void